package Management;

import java.util.ArrayList;
import java.util.List;

import Entities.ServicioAdicional;
import bean.dao.ServicioAdicionalDAO;
import paquetes.negocioVO.ServicioAdicionalVO;



public class ManagementServicioAdicional {
	
	private static ManagementServicioAdicional instancia;

	
	public static ManagementServicioAdicional getInstancia(){
		if(instancia == null)
			instancia = new ManagementServicioAdicional();
		return instancia;
	}
	
	public ServicioAdicionalVO ServicioAdicionalEntitieAVO(ServicioAdicional servicioAdicional) {
		ServicioAdicionalVO ServicioAdicionalVO = new ServicioAdicionalVO();
		ServicioAdicionalVO.setId(servicioAdicional.getId());
		ServicioAdicionalVO.setDescripcion(servicioAdicional.getDescripcion());
		
		return ServicioAdicionalVO;	
	}
	
	public ServicioAdicional VOAEntitie(ServicioAdicionalVO servicioadicional){
		ServicioAdicional servicio = new ServicioAdicional();
		servicio.setDescripcion(servicioadicional.getDescripcion());
		return servicio;
	}

	public void guardarServicioAdicional(String descripcion) {
		

		ServicioAdicionalDAO miServicioAdicionalDAO = new ServicioAdicionalDAO();
		
		ServicioAdicional servicio = new ServicioAdicional();
		servicio.setDescripcion(descripcion);
	
		miServicioAdicionalDAO.altaServicioAdicional(servicio);		
		
	}
	
	public void bajaServicioAdicional(int id) {
		ServicioAdicionalDAO miServicioAdicionalDAO = new ServicioAdicionalDAO();
		miServicioAdicionalDAO.bajaServicioAdicional(id);
	}

	public List<ServicioAdicionalVO> obtenerServiciosAdicionales() {
		try {
			ServicioAdicionalDAO miServicioAdicional = new ServicioAdicionalDAO();
			List<ServicioAdicional> ServiciosAdicionales = miServicioAdicional.obtenerServiciosAdicionales();
			List<ServicioAdicionalVO> ServiciosAdicionalesVO = new ArrayList<ServicioAdicionalVO>();
			for (int i=0;i < ServiciosAdicionales.size();i++)
			{
				ServicioAdicionalVO emp = this.ServicioAdicionalEntitieAVO(ServiciosAdicionales.get(i));
				ServiciosAdicionalesVO.add(emp);
			}
			return ServiciosAdicionalesVO;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public ServicioAdicionalVO obtenerServicioAdicional(int id) {
		try {
			ServicioAdicionalDAO miServicioAdicional = new ServicioAdicionalDAO();
			ServicioAdicional s = miServicioAdicional.getServicioAdicional(id);
			if (s==null)
				return null;
			ServicioAdicionalVO serv = this.ServicioAdicionalEntitieAVO(s);
			return serv;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
		
	}
	

	public void editarServicioAdicional(int id, ServicioAdicionalVO ServicioAdicional) {
		
		ServicioAdicionalDAO miServicioAdicionalDAO = new ServicioAdicionalDAO();
		miServicioAdicionalDAO.actualizarServicioAdicional(id,this.VOAEntitie(ServicioAdicional));
		
	}
}
